{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "44b4e46e-8ea6-4b46-8398-761995f3f976",
   "metadata": {},
   "source": [
    "Chapter 19\n",
    "\n",
    "# 炮弹角度优化\n",
    "Book_3《数学要素》 | 鸢尾花书：从加减乘除到机器学习 (第二版)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "080b4642-a8db-4660-a561-1bda7b23caf2",
   "metadata": {},
   "source": [
    "这段代码使用**最小二乘法**拟合了一组模拟的抛物线型散点数据。以下从数学角度详细描述代码的功能、数学公式以及可视化的目的。\n",
    "\n",
    "---\n",
    "\n",
    "### 1. **数据生成**\n",
    "\n",
    "#### 抛物线数据\n",
    "代码首先生成了一组模拟的散点数据。这些数据符合抛物线的模型形式，并叠加了随机噪声：\n",
    "$$\n",
    "y = -0.02x^2 + 2x + 30 + \\epsilon\n",
    "$$\n",
    "其中，$\\epsilon \\sim \\mathcal{N}(0, \\sigma^2)$ 是服从均值为 $0$，标准差为 $\\sigma$ 的正态分布的噪声，模拟实际观测中的误差。\n",
    "\n",
    "- 水平坐标 $x$ 为均匀分布的 $[0, 100]$ 间隔点。\n",
    "- 随机噪声的加入使得数据更加贴近真实实验场景，反映出观测数据的不确定性。\n",
    "\n",
    "---\n",
    "\n",
    "### 2. **目标函数：最小二乘法**\n",
    "\n",
    "#### 拟合模型\n",
    "为了拟合上述数据，假设抛物线模型为：\n",
    "$$\n",
    "y = ax^2 + bx + c\n",
    "$$\n",
    "其中，$a, b, c$ 是需要确定的参数。\n",
    "\n",
    "#### 最小二乘法\n",
    "最小二乘法的目标是通过最小化观测值与拟合值之间的误差平方和，找到最优参数。目标函数定义为：\n",
    "$$\n",
    "\\text{Loss}(a, b, c) = \\sum_{i=1}^n \\left( y_i - (ax_i^2 + bx_i + c) \\right)^2\n",
    "$$\n",
    "- $y_i$ 是观测数据；\n",
    "- $ax_i^2 + bx_i + c$ 是模型的预测值；\n",
    "- $n$ 是数据点的数量。\n",
    "\n",
    "代码中的函数 `parabola_obj` 实现了上述目标函数。\n",
    "\n",
    "#### 优化方法\n",
    "初始猜测值为 $[-0.1, 1, 1]$，使用 `scipy.optimize.minimize` 进行参数优化。优化算法通过迭代搜索，找到能够最小化目标函数的参数 $a_\\text{opt}, b_\\text{opt}, c_\\text{opt}$。\n",
    "\n",
    "---\n",
    "\n",
    "### 3. **拟合结果及公式**\n",
    "\n",
    "#### 优化后的参数\n",
    "优化结果返回的参数为：\n",
    "$$\n",
    "a_\\text{opt}, b_\\text{opt}, c_\\text{opt}\n",
    "$$\n",
    "它们定义了一条拟合的抛物线：\n",
    "$$\n",
    "y_\\text{fit} = a_\\text{opt} x^2 + b_\\text{opt} x + c_\\text{opt}\n",
    "$$\n",
    "\n",
    "#### 数据预测\n",
    "使用拟合的抛物线模型对原始数据 $x_\\text{data}$ 进行预测，得到对应的预测值：\n",
    "$$\n",
    "y_\\text{data\\_predict} = a_\\text{opt} x_\\text{data}^2 + b_\\text{opt} x_\\text{data} + c_\\text{opt}\n",
    "$$\n",
    "\n",
    "---\n",
    "\n",
    "### 4. **可视化分析**\n",
    "\n",
    "#### 可视化 1：数据散点图\n",
    "第一张图展示了原始的散点数据，表现了数据的抛物线趋势以及随机噪声的分布情况。\n",
    "\n",
    "#### 可视化 2：散点与拟合抛物线\n",
    "第二张图叠加了优化后的抛物线曲线，展示了拟合模型对数据的整体描述。红色曲线 $y_\\text{fit}$ 表示拟合模型，与蓝色散点 $y_\\text{data}$ 的匹配情况反映了拟合的效果。\n",
    "\n",
    "#### 可视化 3：最小二乘误差分析\n",
    "第三张图进一步可视化了最小二乘法的核心思想：\n",
    "- 对于每个数据点 $(x_i, y_i)$，绘制其观测值与预测值之间的误差：\n",
    "  $$\\text{误差} = y_i - y_\\text{predict}$$\n",
    "- 误差通过竖线和蓝色阴影矩形标记，矩形面积的大小表示误差平方。\n",
    "\n",
    "这种可视化清晰地展示了优化过程中的目标，即最小化所有矩形面积的总和（即误差平方和）。\n",
    "\n",
    "---\n",
    "\n",
    "### 5. **结论与应用**\n",
    "\n",
    "这段代码通过最小二乘法成功拟合了一组带噪声的抛物线数据，并通过三种可视化方式直观展示了数据分布、拟合结果和误差分析。最小二乘法的核心是通过优化参数，使模型能够最大限度地描述观测数据，广泛应用于曲线拟合、回归分析等领域。\n",
    "\n",
    "通过拟合结果可以看出，抛物线模型能够很好地捕捉数据的趋势，同时随机噪声的存在不会显著影响最终模型的描述能力。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8b4dc712-d44a-4612-be2d-fc91d4cd1ba6",
   "metadata": {},
   "source": [
    "## 导入包"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "584715a0-3708-4790-9f32-3e5a77525e0c",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from scipy.optimize import minimize"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "159045d2-1b87-48b0-95d9-9203e0aa6efa",
   "metadata": {},
   "source": [
    "## 生成抛物线散点数据，开口朝下，减少噪音"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "652075ee-e45e-43de-9393-40f5c364e9c4",
   "metadata": {},
   "outputs": [],
   "source": [
    "np.random.seed(0)\n",
    "x_data = np.linspace(0, 100, 20)\n",
    "y_data = -0.02 * x_data**2 + 2 * x_data + 30 + np.random.normal(0, 50, x_data.shape)*0.1"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0f21529f-c304-4866-a56b-8d69ffe53d1a",
   "metadata": {},
   "source": [
    "## 最小二乘法的目标函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "263914b6-d494-4a1a-8a45-db4c537a5da7",
   "metadata": {},
   "outputs": [],
   "source": [
    "def parabola_obj(params, x, y):\n",
    "    a, b, c = params\n",
    "    y_pred = a * x**2 + b * x + c\n",
    "    return np.sum((y - y_pred)**2)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7079b3e0-f75c-4bbb-85b1-be7b54d41bf0",
   "metadata": {},
   "source": [
    "## 初始猜测和优化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "11a54bff-e7e4-46db-87ab-c27ebbe6d722",
   "metadata": {},
   "outputs": [],
   "source": [
    "initial_guess = [-0.1, 1, 1]\n",
    "result = minimize(parabola_obj, initial_guess, args=(x_data, y_data))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "86900afa-94b8-4ff9-87bf-7d55e64daba5",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 获取拟合的最优化参数\n",
    "a_opt, b_opt, c_opt = result.x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "2ca90a15-48ce-47dc-9cd6-4b19a5c49f52",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 拟合的抛物线\n",
    "x_fit = np.linspace(0, 100, 100)\n",
    "y_fit = a_opt * x_fit**2 + b_opt * x_fit + c_opt"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e64f4980-f9d8-4e86-8a84-8c540d84f7b1",
   "metadata": {},
   "source": [
    "## 可视化1：散点图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "eb818888-be28-47f6-82be-8bebf294dd05",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 800x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(8, 6))\n",
    "plt.scatter(x_data, y_data, marker = 'x', \n",
    "            color='blue', label=\"Data Points\")\n",
    "plt.xlabel('Distance')\n",
    "plt.ylabel('Height')\n",
    "\n",
    "# plt.legend()\n",
    "plt.ylim(0,100)\n",
    "plt.xlim(0,100)\n",
    "plt.xticks(np.arange(0,110,10))\n",
    "plt.yticks(np.arange(0,110,10))\n",
    "plt.grid()\n",
    "ax.set_aspect('equal', adjustable='box')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a8178941-8649-4b59-a8a9-33178b0792b6",
   "metadata": {},
   "source": [
    "## 可视化2：散点和最优化抛物线"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "525a9888-7677-4f92-a3bb-baa04422a2df",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAicAAAISCAYAAAAX52/DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABmCElEQVR4nO3de3zO9f/H8ce1gx2YxWIHhk10Ugolo1DNIUn5dlyJVBSVpVLoMMpE36TyTekgHZZOlMppikk6rKJQPyliDmuFtjG22T6/P97tstmI7Tp8rnneb7fr5ro+n88+1/O6Wrte1/vzPjgsy7IQERERsQk/bwcQERERKU/FiYiIiNiKihMRERGxFRUnIiIiYisqTkRERMRWVJyIiIiIrag4EREREVtRcSIiIiK2ouJEREREbEXFiYiIiNiKV4uT5cuX07dvX2JiYnA4HHzwwQcV9luWRUpKCjExMYSEhNCtWzfWrVtX4ZjCwkLuvPNOTjzxROrWrctll13G1q1bPfgqRERExJW8Wpzs3buXtm3bMm3atCr3T548mSlTpjBt2jQyMzOJiooiMTGR/Px85zHJycnMnTuX2bNns2LFCvbs2cOll15KSUmJp16GiIiIuJDDLgv/ORwO5s6dy+WXXw6YVpOYmBiSk5O5//77AdNKEhkZyaRJkxg6dCi5ubk0atSI119/nWuuuQaA7du3Exsby/z58+nZs6e3Xo6IiIhUU4C3AxzOpk2byM7OpkePHs5tQUFBdO3alZUrVzJ06FC+++47iouLKxwTExNDmzZtWLly5WGLk8LCQgoLC52PS0tL2bVrFxERETgcDve9KBERkVrAsizy8/OJiYnBz8/1F2FsW5xkZ2cDEBkZWWF7ZGQkmzdvdh5Tp04dGjRoUOmYsp+vysSJExk3bpyLE4uIiBxfsrKyaNq0qcvPa9vipMyhLRmWZf1r68a/HTN69GhGjhzpfJybm0uzZs345ZdfaNiwYc0Ce1BxcTFLly6le/fuBAYGejvOUfPV3OC72ZXbs5Tb83w1u6/m3rVrF61btyYsLMwt57dtcRIVFQWY1pHo6Gjn9pycHGdrSlRUFEVFRezevbtC60lOTg4JCQmHPXdQUBBBQUGVtjds2JCIiAhXvQS3Ky4uJjQ0lIiICJ/6pfbV3OC72ZXbs5Tb83w1u6/mLuOurhC2neckLi6OqKgo0tPTnduKiorIyMhwFh7t27cnMDCwwjE7duxg7dq1RyxORERExL682nKyZ88efv31V+fjTZs2sXr1aho2bEizZs1ITk4mNTWVVq1a0apVK1JTUwkNDSUpKQmA8PBwbr75Zu655x4iIiJo2LAh9957L2eccQYXX3yxt16WiIiI1IBXi5Nvv/2W7t27Ox+X9QMZOHAgr776KqNGjWLfvn0MGzaM3bt307FjRxYvXlzhGtdTTz1FQEAAV199Nfv27eOiiy7i1Vdfxd/f3+OvR0RERGrOq8VJt27dONI0Kw6Hg5SUFFJSUg57THBwMM8++yzPPvusGxKKiIiIp9m2z4mIiIgcn1SciIiIiK2oOBERERFbUXEiIiIitqLiRERERGxFxYmIiIjYiooTERERsRUVJyIiImIrKk5ERETEVlSciIiIiK2oOBERERFbUXEiIiIitqLiRERERGxFxYmIiIjYiooTERERsRUVJyIiImIrKk5ERETEVlSciIiIiK2oOBERERFbUXEiIiIitqLiRERERGxFxYmIiIjYiooTERERsRUVJyIiImIrKk5ERETEVlSciIiIiK2oOBERERFbUXEiIiIitqLiRERERGxFxYmIiIjYiooTERERsRUVJyIiImIrKk5ERETEVlSciIiIiK2oOBERERFbsX1xkp+fT3JyMs2bNyckJISEhAQyMzOd+y3LIiUlhZiYGEJCQujWrRvr1q3zYmIRERGpCdsXJ7fccgvp6em8/vrrrFmzhh49enDxxRezbds2ACZPnsyUKVOYNm0amZmZREVFkZiYSH5+vpeTi4iISHXYujjZt28f77//PpMnT+aCCy7gpJNOIiUlhbi4OKZPn45lWUydOpWxY8fSv39/2rRpw6xZsygoKCAtLc3b8UVERKQaArwd4EgOHDhASUkJwcHBFbaHhISwYsUKNm3aRHZ2Nj169HDuCwoKomvXrqxcuZKhQ4dWed7CwkIKCwudj/Py8gAoLi6muLjYDa/EPcqy+lJm8N3c4LvZlduzlNvzfDW7r+d2F4dlWZZbn6GGEhISqFOnDmlpaURGRvLWW29x44030qpVK2bOnEnnzp3Ztm0bMTExzp8ZMmQImzdvZtGiRVWeMyUlhXHjxlXanpaWRmhoqNtei4iISG1QUFBAUlISubm51K9f3+Xnt3XLCcDrr7/O4MGDadKkCf7+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2IqKExEREbEVFSciIiJiKypORERExFZUnIiIiIitqDgRERERW1FxIiIiIrai4kRERERsRcWJiIiI2IqKExEREbEVFSciIiJiKypORERExFZUnIiIiIitqDgRERERW1FxIiIiIrai4kRERERsRcWJiIiI2IqKExEREbEVFSciIiJiKypORERExFZUnIiIiIitqDgRERERW1FxIiIiIrai4kRERERsRcWJiIiI2Irti5Ply5fTt29fYmJicDgcfPDBBxX2W5ZFSkoKMTExhISE0K1bN9atW+edsCIiIlJjti9O9u7dS9u2bZk2bVqV+ydPnsyUKVOYNm0amZmZREVFkZiYSH5+voeTioiIiCsEeDvAv+nduze9e/eucp9lWUydOpWxY8fSv39/AGbNmkVkZCRpaWkMHTrUk1FFRETEBWxfnBzJpk2byM7OpkePHs5tQUFBdO3alZUrVx62OCksLKSwsND5OC8vD4Di4mKKi4vdG9qFyrL6Umbw3dzgu9mV27OU2/N8Nbuv53YXh2VZllufwYUcDgdz587l8ssvB2DlypV07tyZbdu2ERMT4zxuyJAhbN68mUWLFlV5npSUFMaNG1dpe1paGqGhoW7JLiIiUlsUFBSQlJREbm4u9evXd/n5fbrlpIzD4ajw2LKsStvKGz16NCNHjnQ+zsvLIzY2lu7duxMREeG2nK5WXFxMeno6iYmJBAYGejvOUfPV3OC72ZXbs5Tb83w1u6/m3rlzp1vP79PFSVRUFADZ2dlER0c7t+fk5BAZGXnYnwsKCiIoKKjS9sDAQJ/65Sij3J7nq9mV27OU2/N8Nbuv5XZ3VtuP1jmSuLg4oqKiSE9Pd24rKioiIyODhIQELyYTERGR6rJ9y8mePXv49ddfnY83bdrE6tWradiwIc2aNSM5OZnU1FRatWpFq1atSE1NJTQ0lKSkJC+mFhERkeqyfXHy7bff0r17d+fjsr4iAwcO5NVXX2XUqFHs27ePYcOGsXv3bjp27MjixYsJCwvzVmQRERGpAdsXJ926deNIA4ocDgcpKSmkpKR4LpSIiIi4jU/3OREREZHaR8WJiIiI2IqKExEREbEVFSciIiJiKypORERExFZUnIiIiIitqDgRERERW1FxIiIiIrai4kRERERsRcWJiIiI2IqKExEREbEVFSciIiJiKypORERExFZUnIiIiIitqDgRERERW1FxIiIiIrai4kRERERsRcWJiIiI2IqKExEREbEVFSciIiJiKypORERExFZUnIiIiIitqDgRERERW1FxIiIiIrai4kRERERsRcWJiIiI2IqKExEREbEVFSciIiJiKypORERExFZUnIiIiIitqDgRERERW1FxIiIiIrai4kRERERsRcWJiIiI2IqKExEREbGVWlOcPPfcc8TFxREcHEz79u35/PPPvR1JREREqqFWFCdvv/02ycnJjB07llWrVnH++efTu3dvtmzZ4u1oIiIicoxqRXEyZcoUbr75Zm655RZOPfVUpk6dSmxsLNOnT/d2NBERETlGAd4OUFNFRUV89913PPDAAxW29+jRg5UrV1b5M4WFhRQWFjof5+bmArBr1y73BXWD4uJiCgoK2LlzJ4GBgd6Oc9R8NTf4bnbl9izl9jxfze6rucs+Ly3Lcsv5fb44+euvvygpKSEyMrLC9sjISLKzs6v8mYkTJzJu3LhK21u3bu2WjCIiIrXRzp07CQ8Pd/l5fb44KeNwOCo8tiyr0rYyo0ePZuTIkc7Hf//9N82bN2fLli1ueZPdJS8vj9jYWLKysqhfv7634xw1X80NvptduT1LuT3PV7P7au7c3FyaNWtGw4YN3XJ+ny9OTjzxRPz9/Su1kuTk5FRqTSkTFBREUFBQpe3h4eE+9ctRpn79+srtYb6aXbk9S7k9z1ez+2puPz/3dF31+Q6xderUoX379qSnp1fYnp6eTkJCgpdSiYiISHX5fMsJwMiRIxkwYAAdOnSgU6dOzJgxgy1btnDbbbd5O5qIiIgco1pRnFxzzTXs3LmT8ePHs2PHDtq0acP8+fNp3rz5Uf18UFAQjzzySJWXeuxMuT3PV7Mrt2cpt+f5anblrprDctc4IBEREZFq8Pk+JyIiIlK7qDgRERERW1FxIiIiIrai4kRERERs5bgvTp577jni4uIIDg6mffv2fP75596OVMny5cvp27cvMTExOBwOPvjggwr7LcsiJSWFmJgYQkJC6NatG+vWrfNO2H9MnDiRc845h7CwMBo3bszll1/O+vXrKxxjx9wA06dP58wzz3ROitSpUycWLFjg3G/X3IeaOHEiDoeD5ORk5zY7Zk9JScHhcFS4RUVFOffbMXOZbdu2ccMNNxAREUFoaChnnXUW3333nXO/XbO3aNGi0nvucDgYPnw4YN/cBw4c4MEHHyQuLo6QkBDi4+MZP348paWlzmPsmj0/P5/k5GSaN29OSEgICQkJZGZmOvfbIbcrPmsKCwu58847OfHEE6lbty6XXXYZW7duPfYw1nFs9uzZVmBgoPXiiy9aP/30kzVixAirbt261ubNm70drYL58+dbY8eOtd5//30LsObOnVth/+OPP26FhYVZ77//vrVmzRrrmmuusaKjo628vDzvBLYsq2fPntbMmTOttWvXWqtXr7b69OljNWvWzNqzZ4+tc1uWZc2bN8/65JNPrPXr11vr16+3xowZYwUGBlpr1661de7yvvnmG6tFixbWmWeeaY0YMcK53Y7ZH3nkEev000+3duzY4bzl5OTYOrNlWdauXbus5s2bW4MGDbK+/vpra9OmTdaSJUusX3/91XmMXbPn5ORUeL/T09MtwFq6dKmtcz/22GNWRESE9fHHH1ubNm2y3n33XatevXrW1KlTncfYNfvVV19tnXbaaVZGRoa1YcMG65FHHrHq169vbd261Ta5XfFZc9ttt1lNmjSx0tPTre+//97q3r271bZtW+vAgQPHlOW4Lk7OPfdc67bbbquw7ZRTTrEeeOABLyX6d4f+wpSWllpRUVHW448/7ty2f/9+Kzw83Hr++ee9kLBqOTk5FmBlZGRYluU7ucs0aNDAeumll3wid35+vtWqVSsrPT3d6tq1q7M4sWv2Rx55xGrbtm2V++ya2bIs6/7777e6dOly2P12zn6oESNGWC1btrRKS0ttnbtPnz7W4MGDK2zr37+/dcMNN1iWZd/3vKCgwPL397c+/vjjCtvbtm1rjR071pa5q/NZ8/fff1uBgYHW7Nmzncds27bN8vPzsxYuXHhMz3/cXtYpKiriu+++o0ePHhW29+jRg5UrV3op1bHbtGkT2dnZFV5HUFAQXbt2tdXryM3NBXAuEuUruUtKSpg9ezZ79+6lU6dOPpF7+PDh9OnTh4svvrjCdjtn37BhAzExMcTFxXHttdeyceNGwN6Z582bR4cOHbjqqqto3LgxZ599Ni+++KJzv52zl1dUVMQbb7zB4MGDcTgcts7dpUsXPv30U3755RcAfvjhB1asWMEll1wC2Pc9P3DgACUlJQQHB1fYHhISwooVK2ybu7yjyfjdd99RXFxc4ZiYmBjatGlzzK/juC1O/vrrL0pKSiotDhgZGVlpEUE7K8tq59dhWRYjR46kS5cutGnTBrB/7jVr1lCvXj2CgoK47bbbmDt3Lqeddprtc8+ePZvvv/+eiRMnVtpn1+wdO3bktddeY9GiRbz44otkZ2eTkJDAzp07bZsZYOPGjUyfPp1WrVqxaNEibrvtNu666y5ee+01wL7v96E++OAD/v77bwYNGgTYO/f999/PddddxymnnEJgYCBnn302ycnJXHfddYB9s4eFhdGpUyceffRRtm/fTklJCW+88QZff/01O3bssG3u8o4mY3Z2NnXq1KFBgwaHPeZo1Yrp62vC4XBUeGxZVqVtvsDOr+OOO+7gxx9/ZMWKFZX22TX3ySefzOrVq/n77795//33GThwIBkZGc79dsydlZXFiBEjWLx4caVvaOXZLXvv3r2d98844ww6depEy5YtmTVrFueddx5gv8wApaWldOjQgdTUVADOPvts1q1bx/Tp07nxxhudx9kxe3kvv/wyvXv3JiYmpsJ2O+Z+++23eeONN0hLS+P0009n9erVJCcnExMTw8CBA53H2TH766+/zuDBg2nSpAn+/v60a9eOpKQkvv/+e+cxdsx9qOpkrM7rOG5bTk488UT8/f0rVXM5OTmVKkM7KxvVYNfXceeddzJv3jyWLl1K06ZNndvtnrtOnTqcdNJJdOjQgYkTJ9K2bVuefvppW+f+7rvvyMnJoX379gQEBBAQEEBGRgbPPPMMAQEBznx2zF5e3bp1OeOMM9iwYYOt3+/o6GhOO+20CttOPfVUtmzZAtj/dxxg8+bNLFmyhFtuucW5zc6577vvPh544AGuvfZazjjjDAYMGMDdd9/tbCm0c/aWLVuSkZHBnj17yMrK4ptvvqG4uJi4uDhb5y5zNBmjoqIoKipi9+7dhz3maB23xUmdOnVo37496enpFbanp6eTkJDgpVTHruwXu/zrKCoqIiMjw6uvw7Is7rjjDubMmcNnn31GXFxchf12zX04lmVRWFho69wXXXQRa9asYfXq1c5bhw4duP7661m9ejXx8fG2zV5eYWEhP//8M9HR0bZ+vzt37lxpePwvv/ziXHDUztnLzJw5k8aNG9OnTx/nNjvnLigowM+v4seWv7+/cyixnbOXqVu3LtHR0ezevZtFixbRr18/n8h9NBnbt29PYGBghWN27NjB2rVrj/11HGMH3lqlbCjxyy+/bP30009WcnKyVbduXev333/3drQK8vPzrVWrVlmrVq2yAGvKlCnWqlWrnEOeH3/8cSs8PNyaM2eOtWbNGuu6667z+tC522+/3QoPD7eWLVtWYchiQUGB8xg75rYsyxo9erS1fPlya9OmTdaPP/5ojRkzxvLz87MWL15s69xVKT9ax7Lsmf2ee+6xli1bZm3cuNH66quvrEsvvdQKCwtz/n9ox8yWZYZrBwQEWBMmTLA2bNhgvfnmm1ZoaKj1xhtvOI+xa3bLsqySkhKrWbNm1v33319pn11zDxw40GrSpIlzKPGcOXOsE0880Ro1apTzGLtmX7hwobVgwQJr48aN1uLFi622bdta5557rlVUVGSb3K74rLntttuspk2bWkuWLLG+//5768ILL9RQ4ur43//+ZzVv3tyqU6eO1a5dO+dQVztZunSpBVS6DRw40LIsM8TrkUcesaKioqygoCDrggsusNasWePVzFXlBayZM2c6j7FjbsuyrMGDBzt/Jxo1amRddNFFzsLEsuybuyqHFid2zF42V0JgYKAVExNj9e/f31q3bp1zvx0zl/noo4+sNm3aWEFBQdYpp5xizZgxo8J+O2dftGiRBVjr16+vtM+uufPy8qwRI0ZYzZo1s4KDg634+Hhr7NixVmFhofMYu2Z/++23rfj4eKtOnTpWVFSUNXz4cOvvv/927rdDbld81uzbt8+64447rIYNG1ohISHWpZdeam3ZsuWYszgsy7KOvYFHRERExD2O2z4nIiIiYk8qTkRERMRWVJyIiIiIrag4EREREVtRcSIiIiK2ouJEREREbEXFiYiIiNiKihMRERGxFRUnIuJyDoeDDz74wNsxRMRHqTgRkaM2aNAgHA4HDoeDwMBAIiMjSUxM5JVXXnEuvgZmsa/evXsf1TlVyIjIoVSciMgx6dWrFzt27OD3339nwYIFdO/enREjRnDppZdy4MABwCydHhQU5OWkIuKrVJyIyDEJCgoiKiqKJk2a0K5dO8aMGcOHH37IggULePXVV4GKrSFFRUXccccdREdHExwcTIsWLZg4cSIALVq0AOCKK67A4XA4H//222/069ePyMhI6tWrxznnnMOSJUsq5GjRogWpqakMHjyYsLAwmjVrxowZMyocs3XrVq699loaNmxI3bp16dChA19//bVz/0cffUT79u0JDg4mPj6ecePGOQssEfEeFSciUmMXXnghbdu2Zc6cOZX2PfPMM8ybN4933nmH9evX88YbbziLkMzMTABmzpzJjh07nI/37NnDJZdcwpIlS1i1ahU9e/akb9++bNmypcK5n3zySTp06MCqVasYNmwYt99+O//3f//nPEfXrl3Zvn078+bN44cffmDUqFHOy0+LFi3ihhtu4K677uKnn37ihRde4NVXX2XChAnueptE5GjVfJFlETleDBw40OrXr1+V+6655hrr1FNPtSzLsgBr7ty5lmVZ1p133mldeOGFVmlpaZU/V/7YIznttNOsZ5991vm4efPm1g033OB8XFpaajVu3NiaPn26ZVmW9cILL1hhYWHWzp07qzzf+eefb6WmplbY9vrrr1vR0dH/mkVE3CvA28WRiNQOlmXhcDgqbR80aBCJiYmcfPLJ9OrVi0svvZQePXoc8Vx79+5l3LhxfPzxx2zfvp0DBw6wb9++Si0nZ555pvO+w+EgKiqKnJwcAFavXs3ZZ59Nw4YNq3yO7777jszMzAotJSUlJezfv5+CggJCQ0OP+rWLiGupOBERl/j555+Ji4urtL1du3Zs2rSJBQsWsGTJEq6++mouvvhi3nvvvcOe67777mPRokX897//5aSTTiIkJIQrr7ySoqKiCscFBgZWeOxwOJyXbUJCQo6Yt7S0lHHjxtG/f/9K+4KDg4/4syLiXipORKTGPvvsM9asWcPdd99d5f769etzzTXXcM0113DllVfSq1cvdu3aRcOGDQkMDKSkpKTC8Z9//jmDBg3iiiuuAEz/kd9///2YMp155pm89NJLzuc5VLt27Vi/fj0nnXTSMZ1XRNxPxYmIHJPCwkKys7MpKSnhjz/+YOHChUycOJFLL72UG2+8sdLxTz31FNHR0Zx11ln4+fnx7rvvEhUVxQknnACYUTeffvopnTt3JigoiAYNGnDSSScxZ84c+vbti8Ph4KGHHqowj8rRuO6660hNTeXyyy9n4sSJREdHs2rVKmJiYujUqRMPP/wwl156KbGxsVx11VX4+fnx448/smbNGh577DFXvFUiUk0arSMix2ThwoVER0fTokULevXqxdKlS3nmmWf48MMP8ff3r3R8vXr1mDRpEh06dOCcc87h999/Z/78+fj5mT8/Tz75JOnp6cTGxnL22WcDpqBp0KABCQkJ9O3bl549e9KuXbtjylmnTh0WL15M48aNueSSSzjjjDN4/PHHnRl79uzJxx9/THp6Oueccw7nnXceU6ZMoXnz5jV8h0SkphyWZVneDiEiIiJSRi0nIiIiYisqTkRERMRWVJyIiIiIrag4EREREVtRcSIiIiK2ouJEREREbEXFiYiIiNiKihMRERGxFRUnIiIiYisqTkRERMRWVJyIiIiIrfw/8+klBz8LAYAAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 800x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(8, 6))\n",
    "plt.scatter(x_data, y_data, marker = 'x', \n",
    "            color='blue', label=\"Data Points\")\n",
    "plt.plot(x_fit, y_fit, color='red', label=\"Optimized Parabola\")\n",
    "plt.xlabel('Distance')\n",
    "plt.ylabel('Height')\n",
    "\n",
    "# plt.legend()\n",
    "plt.ylim(0,100)\n",
    "plt.xlim(0,100)\n",
    "plt.xticks(np.arange(0,110,10))\n",
    "plt.yticks(np.arange(0,110,10))\n",
    "plt.grid()\n",
    "ax.set_aspect('equal', adjustable='box')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cee1bd1a-4141-480e-ac98-c51d81efc287",
   "metadata": {},
   "source": [
    "## 拟合的抛物线"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "dd5602fa-30c4-4c71-8841-717a42c41a1f",
   "metadata": {},
   "outputs": [],
   "source": [
    "y_data_predict = a_opt * x_data**2 + b_opt * x_data + c_opt"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4bfc1440-7ffd-4d1d-b318-af3c3b0872ec",
   "metadata": {},
   "source": [
    "## 可视化3：最小二乘"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "0a5fa6cf-0904-40e2-bf89-02a98a14b84f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAicAAAISCAYAAAAX52/DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB5pUlEQVR4nO3dd3gU1f7H8ffupockQJAUCCWKXhRFBUVBBRSQIqJ4LUQRxIKCChevKGIJFlDuFVFRbPcCKogNFRsQFKL+uCqiKKBiCSWUGEpIL1vm98eQTUISCGk7Gz6v55mH3TOT2c+GlG/OnDnHZhiGgYiIiIhF2H0dQERERKQ8FSciIiJiKSpORERExFJUnIiIiIilqDgRERERS1FxIiIiIpai4kREREQsRcWJiIiIWIqKExEREbEUFSciIiJiKT4tTr744guGDh1KfHw8NpuN999/v8J+wzBITk4mPj6e0NBQ+vTpw6ZNmyocU1xczB133EGrVq0IDw/n0ksvZceOHY34LkRERKQ++bQ4yc/Pp2vXrsyZM6fK/TNnzmTWrFnMmTOHtWvXEhsbS//+/cnNzfUeM3HiRN577z0WL17MV199RV5eHpdccglut7ux3oaIiIjUI5tVFv6z2Wy89957XHbZZYDZaxIfH8/EiRO55557ALOXJCYmhieeeIKxY8eSnZ3Ncccdx2uvvcbVV18NwK5du0hISOCTTz7h4osv9tXbERERkVoK8HWA6mzZsoWMjAwGDBjgbQsODqZ3796sWbOGsWPHsm7dOpxOZ4Vj4uPj6dKlC2vWrKm2OCkuLqa4uNj73OPxsH//fqKjo7HZbA33pkRERJoAwzDIzc0lPj4eu73+L8JYtjjJyMgAICYmpkJ7TEwM27Zt8x4TFBREixYtKh1T+vFVmTFjBtOmTavnxCIiIseW9PR02rZtW+/ntWxxUurQngzDMI7Yu3GkY6ZMmcKkSZO8z7Ozs2nXrh2//fYbLVu2rFvgRuR0Olm1ahV9+/YlMDDQ13FqzF9zg/9mV+7GpdyNz1+z+2vu/fv3c+KJJxIREdEg57dscRIbGwuYvSNxcXHe9szMTG9vSmxsLCUlJWRlZVXoPcnMzKRnz57Vnjs4OJjg4OBK7S1btiQ6Orq+3kKDczqdhIWFER0d7Vdf1P6aG/w3u3I3LuVufP6a3V9zl2qooRCWneekY8eOxMbGkpKS4m0rKSkhNTXVW3h069aNwMDACsfs3r2bjRs3HrY4EREREevyac9JXl4ef/zxh/f5li1bWL9+PS1btqRdu3ZMnDiR6dOn06lTJzp16sT06dMJCwsjKSkJgKioKG688UbuuusuoqOjadmyJf/85z859dRT6devn6/eloiIiNSBT4uT7777jr59+3qfl44DGTVqFPPnz2fy5MkUFhYybtw4srKy6NGjBytWrKhwjeupp54iICCAq666isLCQi666CLmz5+Pw+Fo9PcjIiIidefT4qRPnz4cbpoVm81GcnIyycnJ1R4TEhLCs88+y7PPPtsACUVERKSxWXbMiYiIiBybVJyIiIiIpag4EREREUtRcSIiIiKWouJERERELEXFiYiIiFiKihMRERGxFBUnIiIiYikqTkRERMRSVJyIiIiIpag4EREREUtRcSIiIiKWouJERERELEXFiYiIiFiKihMRERGxFBUnIiIiYikqTkRERMRSVJyIiIiIpag4EREREUtRcSIiIiKWouJERERELEXFiYiIiFiKihMRERGxFBUnIiIiYikqTkRERMRSVJyIiIiIpag4EREREUtRcSIiIiKWouJERERELEXFiYiIiFiKihMRERGxFBUnIiIiYikqTkRERMRSVJyIiIiIpag4EREREUuxfHGSm5vLxIkTad++PaGhofTs2ZO1a9d69xuGQXJyMvHx8YSGhtKnTx82bdrkw8QiIiJSF5YvTm666SZSUlJ47bXX2LBhAwMGDKBfv37s3LkTgJkzZzJr1izmzJnD2rVriY2NpX///uTm5vo4uYiIiNSGpYuTwsJC3n33XWbOnMkFF1zACSecQHJyMh07dmTu3LkYhsHs2bOZOnUqw4cPp0uXLixYsICCggIWLVrk6/giIiJSCwG+DnA4LpcLt9tNSEhIhfbQ0FC++uortmzZQkZGBgMGDPDuCw4Opnfv3qxZs4axY8dWed7i4mKKi4u9z3NycgBwOp04nc4GeCcNozSrP2UG/80N/ptduRuXcjc+f83u77kbis0wDKNBX6GOevbsSVBQEIsWLSImJoY33niD66+/nk6dOjFv3jx69erFzp07iY+P937MLbfcwrZt21i+fHmV50xOTmbatGmV2hctWkRYWFiDvRcREZGmoKCggKSkJLKzs4mMjKz381u65wTgtddeY8yYMbRp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IiJNTEgIXHstjB4NkREN/nKW7jm57777GDRoEAkJCeTm5rJ48WJWr17NsmXLsNlsTJw4kenTp9OpUyc6derE9OnTCQsLIykpydfRRUREmpaQEHPLz2/wl7J0cfLXX38xcuRIdu/eTVRUFKeddhrLli2jf//+AEyePJnCwkLGjRtHVlYWPXr0YMWKFURENHxVJyIiIg3D0sXJf/7zn8Put9lsJCcnk5yc3DiBREREpMH53ZgTERERadpUnIiIiIilqDgRERERS1FxIiIiIpai4kREREQsRcWJiIiIWIqKExEREbEUFSciIiJiKZaehE1ERESsobgIiksgwNHwr6XiRERERA6ruAheX2guq3P1lQ3/erqsIyIiIodVXGIWJllZZpHS0FSciIiIyGFFRsLoUdCiBRw40PCvp+JERESkiXN5DFweT522sAgPI6/30DrW0+B5VZyIiIg0UQE2G0EOOx7DoMTtqfMWHO6h/8CGL040IFZERKSJCnTY6Rwdgcsw6uV8u3bBjeMjaBW3hb27O9bLOaui4kRERKQJC3TYCayH86Snw4C+kJYGJ54Ywd7d9XDSauiyjoiIiBzWjh3Qp49ZmCQmwjvvNOzrqedEREREDisiAlq3Nh+vXg1hYQ37eipORERE5LCiomDZMsjNhbZtYd++hn09FSciIiJyRFFR5tYYNOZERERELEXFiYiIiFiKihMRERGxFBUnIiIiYikqTkRERMRSVJyIiIiIpag4EREREUtRcSIiIiKWouJERERELEXFiYiIiFiKihMRERGxFBUnIiIiYikqTkRERMRSVJyIiIiIpag4EREREUtRcSIiIiKWYuniZMaMGZx11llERETQunVrLrvsMjZv3lzhGMMwSE5OJj4+ntDQUPr06cOmTZt8lFhERETqytLFSWpqKuPHj+frr78mJSUFl8vFgAEDyM/P9x4zc+ZMZs2axZw5c1i7di2xsbH079+f3NxcHyYXERGR2grwdYDDWbZsWYXn8+bNo3Xr1qxbt44LLrgAwzCYPXs2U6dOZfjw4QAsWLCAmJgYFi1axNixY6s8b3FxMcXFxd7nOTk5ADidTpxOZwO9m/pXmtWfMoP/5gb/za7cjUu5G5+/Zvf33A3FZhiG0aCvUI/++OMPOnXqxIYNG+jSpQtpaWkcf/zxfP/995xxxhne44YNG0bz5s1ZsGBBledJTk5m2rRpldoXLVpEWFhYg+UXERFpCgoKCkhKSiI7O5vIyMh6P7+le07KMwyDSZMmcd5559GlSxcAMjIyAIiJialwbExMDNu2bav2XFOmTGHSpEne5zk5OSQkJNC3b1+io6MbIH3DcDqdpKSk0L9/fwIDA30dp8b8NTf4b3blblzK3fj8Nbu/5t63b1+Dnt9vipPbb7+dn376ia+++qrSPpvNVuG5YRiV2soLDg4mODi4UntgYKBffXGUUu7G56/ZlbtxKXfj89fs/pa7obNaekBsqTvuuIOlS5eyatUq2rZt622PjY0FynpQSmVmZlbqTRERERH/YOnixDAMbr/9dpYsWcLnn39Ox44dK+zv2LEjsbGxpKSkeNtKSkpITU2lZ8+ejR1XRERE6oGlL+uMHz+eRYsW8cEHHxAREeHtIYmKiiI0NBSbzcbEiROZPn06nTp1olOnTkyfPp2wsDCSkpJ8nF5ERERqw9LFydy5cwHo06dPhfZ58+YxevRoACZPnkxhYSHjxo0jKyuLHj16sGLFCiIiIho5rYiIiNQHSxcnNbnL2WazkZycTHJycsMHEhERkQZn6TEnIiIicuxRcSIiIiKWouJERERELEXFiYiIiFiKihMRERGxFBUnIiIiYikqTkRERMRSVJyIiIiIpag4EREREUtRcSIiIiKWouJERERELEXFiYiIiFiKihMRERGxFBUnIiIiYikqTkRERMRSVJyIiIiIpag4EREREUtRcSIiIiKWouJERERELEXFiYiIiFiKihMRERGxFBUnIiIiYikqTkRERMRSVJyIiIiIpag4EREREUtRcSIiIiKWouJERERELEXFiYiIiFiKihMRERGxFBUnIiIiYikqTkRERMRSVJyIiIiIpag4EREREUtRcSIiIiKWouJERERELMXyxckXX3zB0KFDiY+Px2az8f7771fYbxgGycnJxMfHExoaSp8+fdi0aZNvwoqIiEidWb44yc/Pp2vXrsyZM6fK/TNnzmTWrFnMmTOHtWvXEhsbS//+/cnNzW3kpCIiIlIfAnwd4EgGDRrEoEGDqtxnGAazZ89m6tSpDB8+HIAFCxYQExPDokWLGDt2bGNGFRERkXpg+eLkcLZs2UJGRgYDBgzwtgUHB9O7d2/WrFlTbXFSXFxMcXGx93lOTg4ATqcTp9PZsKHrUWlWf8oM/psb/De7cjcu5W58/prd33M3FJthGEaDvkI9stlsvPfee1x22WUArFmzhl69erFz507i4+O9x91yyy1s27aN5cuXV3me5ORkpk2bVql90aJFhIWFNUh2ERGRpqKgoICkpCSys7OJjIys9/P7dc9JKZvNVuG5YRiV2sqbMmUKkyZN8j7PyckhISGBvn37Eh0d3WA565vT6SQlJYX+/fsTGBjo6zg15q+5wX+zK3fjUu7G56/Z/TX3vn37GvT8fl2cxMbGApCRkUFcXJy3PTMzk5iYmGo/Ljg4mODg4ErtgYGBfvXFUUq5G5+/ZlfuxqXcjc9fs/tb7obOavm7dQ6nY8eOxMbGkpKS4m0rKSkhNTWVnj17+jCZiIiI1Jble07y8vL4448/vM+3bNnC+vXradmyJe3atWPixIlMnz6dTp060alTJ6ZPn05YWBhJSUk+TC0iIiK1Zfni5LvvvqNv377e56VjRUaNGsX8+fOZPHkyhYWFjBs3jqysLHr06MGKFSuIiIjwVWQRERGpA8sXJ3369OFwNxTZbDaSk5NJTk5uvFAiIiLSYPx6zImIiIg0PSpORERExFJUnIiIiIilqDgRERERS1FxIiIiIpai4kREREQsRcWJiIiIWIqKExEREbEUFSciIiJiKSpORERExFJUnIiIiIilqDgRERERS1FxIiIiIpai4kREREQsRcWJiIiIWIqKExEREbEUFSciIiJiKSpORERExFJUnIiIiIilqDgRERERS1FxIiIiIpai4kREREQsRcWJiIiIWIqKExEREbEUFSciIiJiKSpORERExFJUnIiIiIilqDgRERERS1FxIiIiIpai4kREREQsRcWJiIiIWIqKExEREbEUFSciIiJiKSpORERExFJUnIiIiIilNJni5Pnnn6djx46EhITQrVs3vvzyS19HEhERkVpoEsXJm2++ycSJE5k6dSo//PAD559/PoMGDWL79u2+jiYiIiJHqUkUJ7NmzeLGG2/kpptuonPnzsyePZuEhATmzp3r62giIiJylAJ8HaCuSkpKWLduHffee2+F9gEDBrBmzZoqP6a4uJji4mLv8+zsbAD279/fcEEbgNPppKCggH379hEYGOjrODXmr7nBf7Mrd+NS7sbnr9n9NXfp70vDMBrk/H5fnOzduxe3201MTEyF9piYGDIyMqr8mBkzZjBt2rRK7See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5pu8/vrrLFq0iFNOOYX169czceJE4uPjGTVqlPc4K2Z/7bXXGDNmDG3atMHhcHDmmWeSlJTE999/7z3GirkPVZuMtXkfx2zPSatWrXA4HJWquczMzEqVoZWV3tVg1fdxxx13sHTpUlatWkXbtm297VbPHRQUxAknnED37t2ZMWMGXbt25emnn7Z07nXr1pGZmUm3bt0ICAggICCA1NRUnnnmGQICArz5rJi9vPDwcE499VR+//13S3++4+LiOPnkkyu0de7cme3btwPW/xoH2LZtGytXruSmm27ytlk599133829997LNddcw6mnnsrIkSP5xz/+4e0ptHL2448/ntTUVPLy8khPT+fbb7/F6XTSsWNHS+cuVZOMsbGxlJSUkJWVVe0xNXXMFidBQUF069aNlJSUCu0pKSn07NnTR6mOXukXdvn3UVJSQmpqqk/fh2EY3H777SxZsoTPP/+cjh07Vthv1dzVMQyD4uJiS+e+6KKL2LBhA+vXr/du3bt359prr2X9+vUkJiZaNnt5xcXF/PLLL8TFxVn6892rV69Kt8f/9ttv3gVHrZy91Lx582jdujVDhgzxtlk5d0FBAXZ7xV9bDofDeyuxlbOXCg8PJy4ujqysLJYvX86wYcP8IndNMnbr1o3AwMAKx+zevZuNGzce/fs4ygG8TUrprcT/+c9/jJ9//tmYOHGiER4ebmzdutXX0SrIzc01fvjhB+OHH34wAGPWrFnGDz/84L3l+fHHHzeioqKMJUuWGBs2bDBGjBjh81vnbrvtNiMqKspYvXp1hVsWCwoKvMdYMbdhGMaUKVOML774wtiyZYvx008/Gffdd59ht9uNFStWWDp3VcrfrWMY1sx+1113GatXrzbS0tKMr7/+2rjkkkuMiIgI7/ehFTMbhnm7dkBAgPHYY48Zv//+u7Fw4UIjLCzMeP31173HWDW7YRiG2+022rVrZ9xzzz2V9lk196hRo4w2bdp4byVesmSJ0apVK2Py5MneY6yafdmyZcann35qpKWlGStWrDC6du1qnH322UZJSYllctfH75pbb73VaNu2rbFy5Urj+++/Ny688ELdSlwbzz33nNG+fXsjKCjIOPPMM723ulrJqlWrDKDSNmrUKMMwzFu8HnroISM2NtYIDg42LrjgAmPDhg0+zVxVXsCYN2+e9xgr5jYMwxgzZoz3a+K4444zLrroIm9hYhjWzV2VQ4sTK2YvnSshMDDQiI+PN4YPH25s2rTJu9+KmUt9+OGHRpcuXYzg4GDjb3/7m/HSSy9V2G/l7MuXLzcAY/PmzZX2WTV3Tk6OMWHCBKNdu3ZGSEiIkZiYaEydOtUoLi72HmPV7G+++aaRmJhoBAUFGbGxscb48eONAwcOePdbIXd9/K4pLCw0br/9dqNly5ZGaGiocckllxjbt28/6iw2wzCMo+/gEREREWkYx+yYExEREbEmFSciIiJiKSpORERExFJUnIiIiIilqDgRERERS1FxIiIiIpai4kREREQsRcWJiIiIWIqKExGpdzabjffff9/XMUTET6k4EZEaGz16NDabDZvNRmBgIDExMfTv35///ve/3sXXwFzsa9CgQTU6pwoZETmUihMROSoDBw5k9+7dbN26lU8//ZS+ffsyYcIELrnkElwuF2AunR4cHOzjpCLir1SciMhRCQ4OJjY2ljZt2nDmmWdy33338cEHH/Dpp58yf/58oGJvSElJCbfffjtxcXGEhITQoUMHZsyYAUCHDh0AuPzyy7HZbN7nf/75J8OGDSMmJoZmzZpx1llnsXLlygo5OnTowPTp0xkzZgwRERG0a9eOl156qcIxO3bs4JprrqFly5aEh4fTvXt3vvnmG+/+Dz/8kG7duhESEkJiYiLTpk3zFlgi4jsqTkSkzi688EK6du3KkiVLKu175plnWLp0KW+99RabN2/m9ddf9xYha9euBWDevHns3r3b+zwvL4/BgwezcuVKfvjhBy6++GKGDh3K9u3bK5z7ySefpHv37vzwww+MGzeO2267jV9//dV7jt69e7Nr1y6WLl3Kjz/+yOTJk72Xn5YvX851113HnXfeyc8//8yLL77I/Pnzeeyxxxrq0yQiNVX3RZZF5FgxatQoY9iwYVXuu/rqq43OnTsbhmEYgPHee+8ZhmEYd9xxh3HhhRcaHo+nyo8rf+zhnHzyycazzz7rfd6+fXvjuuuu8z73eDxG69atjblz5xqGYRgvvviiERERYezbt6/K851//vnG9OnTK7S99tprRlxc3BGziEjDCvB1cSQiTYNhGNhstkrto0ePpn///px00kkMHDiQSy65hAEDBhz2XPn5+UybNo2PPvqIXbt24XK5KCwsrNRzctppp3kf22w2YmNjyczMBGD9+vWcccYZtGzZssrXWLduHWvXrq3QU+J2uykqKqKgoICwsLAav3cRqV8qTkSkXvzyyy907NixUvuZZ57Jli1b+PTTT1m5ciVXXXUV/fr145133qn2XHfffTfLly/n3//+NyeccAKhoaH8/e9/p6SkpMJxgYGBFZ7bbDbvZZvQ0NDD5vV4PEybNo3hw4dX2hcSEnLYjxWRhqXiRETq7PPPP2fDhg384x//qHJ/ZGQkV199NVdffTV///vfGThwIPv376dly5YEBgbidrsrHP/ll18yevRoLr/8csAcP7J169ajynTaaafxyiuveF/nUGeeeSabN2/mhBNOOKrzikjDU3EiIkeluLiYjIwM3G43f/31F8uWLWPGjBlccsklXH/99ZWOf+qpp4iLi+P000/Hbrfz9ttvExsbS/PmzQHzrpvPPvuMXr16ERwcTIsWLTjhhBNYsmQJQ4cOxWaz8cADD1SYR6UmRowYwfTp07nsssuYMWMGcXFx/PDDD8THx3Puuefy4IMPcskll5CQkMCVV16J3W7np59+YsOGDTz66KP18akSkVrS3ToiclSWLVtGXFwcHTp0YODAgaxatYpnnnmGDz74AIfDUen4Zs2a8cQTT9C9e3fOOusstm7dyieffILdbv74efLJJ0lJSSEhIYEzzjgDMAuaFi1a0LNnT4YOHcrFF1/MmWeeeVQ5g4KCWLFiBa1bt2bw4MGceuqpPP74496MF198MR999BEpKSmcddZZnHPOOcyaNYv27dvX8TMkInVlMwzD8HUIERERkVLqORERERFLUXEiIiIilqLiRERERCxFxYmIiIhYiooTERERsRQVJyIiImIpKk5ERETEUlSciIiIiKWoOBERERFLUXEiIiIilqLiRERERCzl/wGRDfuS5t2rIQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 800x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(8, 6))\n",
    "plt.scatter(x_data, y_data, marker = 'x', \n",
    "            color='blue', label=\"Data Points\")\n",
    "\n",
    "plt.scatter(x_data, y_data_predict, marker = 'x', \n",
    "            color='red', label=\"Data Points\")\n",
    "\n",
    "plt.plot(x_fit, y_fit, color='red', label=\"Optimized Parabola\")\n",
    "\n",
    "# 绘制正方形表示最小二乘\n",
    "for x, y in zip(x_data, y_data):\n",
    "    y_pred = a_opt * x**2 + b_opt * x + c_opt\n",
    "    square_x = [x, x, x + (y - y_pred), x + (y - y_pred)]\n",
    "    square_y = [y, y_pred, y_pred, y]\n",
    "    plt.fill(square_x, square_y, color='lightblue', alpha=0.5)\n",
    "    plt.plot((x,x),(y,y_pred),color = 'k')\n",
    "\n",
    "plt.xlabel('Distance')\n",
    "plt.ylabel('Height')\n",
    "\n",
    "plt.ylim(0,100)\n",
    "plt.xlim(0,100)\n",
    "plt.xticks(np.arange(0,110,10))\n",
    "plt.yticks(np.arange(0,110,10))\n",
    "plt.grid()\n",
    "ax.set_aspect('equal', adjustable='box')\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
